* data.c: Avoid integer truncation in expressions involving floats.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 21 May 2011 05:38:43 +0000 (22:38 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 21 May 2011 05:38:43 +0000 (22:38 -0700)
commit7a4aba3ee2a864178ad7bdd0d042a524f792f807
treeb24b9b2bccabc9415353d4bef1a0f4dac50403de
parentb9f6f0af1c016f7d27280c9b7d28d6b09e652128
* data.c: Avoid integer truncation in expressions involving floats.

* data.c: Include <intprops.h>.
(arith_driver): When there's an integer overflow in an expression
involving floating point, convert the integers to floating point
so that the resulting value does not suffer from catastrophic
integer truncation.  For example, on a 64-bit host (* 4
most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
Do not rely on undefined behavior after integer overflow.
src/ChangeLog
src/data.c